<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"    
      xmlns:f="http://java.sun.com/jsf/core">

    <body>
        <ui:composition template="./../MasterPage/masterPage.xhtml">
            <ui:define name="content">

                <p:panel header="Mantenedor de Empleado">
                    <h:form id="frmfieldset">
                        <p:growl id="grow2" showDetail="true"/>
                        <h:panelGrid id="nuevo" columns="1" width="100%" >                
                            <p:fieldset legend="Nuevo Empleado" toggleable="true" collapsed="true" toggleSpeed="500">  
                                <p:ajax event="toggle"  update="grow2" />                  
                                <h:panelGrid  id="datos" columns="4" cellpadding="15">  
                                    <h:outputText value="DNI: *" /> 
                                    <p:inputText style="width: 150px"  required="true" requiredMessage="Ingrese DNI" label="DNI" id="txtDNI" value="#{managedBeanEmpleado.objetoPersona.perDNI}"/>                        
                                    <h:outputText value="Nombre: *" /> 
                                    <p:inputText style="width: 200px"  required="true" requiredMessage="Ingrese Nombre" label="Nombre" id="txtNombre" value="#{managedBeanEmpleado.objetoPersona.perNombres}"/>                        
                                    <h:outputText value="Apellidos: *" /> 
                                    <p:inputText style="width: 200px"  required="true" requiredMessage="Ingrese Apellidos" label="Apellidos" id="txtApellidos" value="#{managedBeanEmpleado.objetoPersona.perApellidos}"/>                        
                                    <h:outputText value="Direccion: *" /> 
                                    <p:inputText style="width: 200px"  required="true" requiredMessage="Ingrese Direccion" label="Direccion" id="txtDireccion" value="#{managedBeanEmpleado.objetoPersona.perDireccion}"/>                        
                                    <h:outputText value="Sexo: *" />
                                    <p:selectOneMenu value="#{managedBeanEmpleado.objetoPersona.perSexo}" style="width:150px">
                                        <f:selectItem itemLabel="Masculino" itemValue="M" />  
                                        <f:selectItem itemLabel="Femenino" itemValue="F" />  
                                        <f:selectItem itemLabel="Otros" itemValue="O" />  
                                    </p:selectOneMenu> 
                                    <h:outputText value="Telefono: *" /> 
                                    <p:inputText style="width: 150px" label="Telefono" id="txtTelefono" value="#{managedBeanEmpleado.objetoPersona.perTelf}"/>                        
                                    <h:outputText value="Celular: *" /> 
                                    <p:inputText style="width: 150px" label="Celular" id="txtCelular" value="#{managedBeanEmpleado.objetoPersona.perCel}"/>                        
                                    <h:outputText value="Fecha Nacimiento: *" /> 
                                    <p:calendar style="width: 150px" value="#{managedBeanEmpleado.objetoPersona.perFechaNac}" pattern="dd/MM/yyyy" />
                                </h:panelGrid>
                                <p:separator />
                                <center >        
                                    <h:outputText  value="Detalle Empleado" style="color:#0044cc; size: 35px;" /> 
                                </center>
                                <p:separator />
<h:outputText value="Agencia: "/>
<h:panelGrid id="zzz1"  columns="2">
                                        <p:selectOneMenu value="#{managedBeanEmpleado.objetoAgencia}" effect="drop" style="width:500px" converter="AgenciaConverter" filterMatchMode="contains" filter="true">
                                            <f:selectItems   value="#{managedBeanAgencia.objetoItems}"/>
                                        </p:selectOneMenu>
     <p:commandButton value="+" update=":frmAgencia:displayAgencia" oncomplete="AgenciaDialogo.show()" />

                                    </h:panelGrid>

                                   
                                <br/>
                                <h:panelGrid columns="6" cellpadding="15">
                                    <h:outputText value="Cargo: " />
                                    <h:panelGrid id="zzz3">
                                        <p:selectOneMenu filterMatchMode="contains" filter="true" value="#{managedBeanEmpleado.objetoCargo}" effect="drop" style="width: 150px" converter="CargoConverter" >
                                            <f:selectItems  id="tems1" value="#{managedBeanCargo.objetoItems}"/>
                                        </p:selectOneMenu>
                                    </h:panelGrid>

                                    <p:commandButton value="+" update=":frmCargo:displayCargo" oncomplete="CargoDialogo.show()" />

                                    <h:outputText value="Tipo Empleado: " />
                                    <h:panelGrid id="zzz4">
                                        <p:selectOneMenu filterMatchMode="contains" filter="true" value="#{managedBeanEmpleado.objetoTipoempleado}" effect="drop" style="width: 150px" converter="TipoEmpleadoConverter" >
                                            <f:selectItems  id="tems2" value="#{managedBeanTipoEmpleado.objetoItems}"/>
                                        </p:selectOneMenu>
                                    </h:panelGrid>

                                    <p:commandButton value="+" update=":frmTipoEmpleado:displayTipoEmpleado" oncomplete="TipoEmpleadoDialogo.show()" />

                                    
                                    
                                    
                                    <h:outputText value="Jefe: " />
                                    <p:selectOneMenu filterMatchMode="contains" filter="true" value="#{managedBeanEmpleado.objetoEmpleadoJefe}" effect="drop" style="width: 150px" converter="EmpleadoConverter" >
                                        <f:selectItems  id="tems3" value="#{managedBeanEmpleado.objetoItems}"/>
                                    </p:selectOneMenu>
                                    
                                    <h:outputText value="BREVETE: *" /> 
                                    <p:inputText style="width: 100px"   id="txtBrevete" value="#{managedBeanEmpleado.objetoEmpleadoCrear.empNumBrevete}"/>                        
                                    <h:outputText value="" /> 
                                    <h:outputText value="" /> 

                                    
                                    <h:outputText value="Fecha Ingreso: *" /> 
                                    <p:calendar value="#{managedBeanEmpleado.objetoEmpleadoCrear.empFechaIngreso}" pattern="dd/MM/yyyy" />
                                    
                                    <br/>
                                    
                                    <h:outputText value="Fecha Salida: *" /> 
                                    <p:calendar value="#{managedBeanEmpleado.objetoEmpleadoCrear.empFechaSalida}" pattern="dd/MM/yyyy" />
                                </h:panelGrid>
                                <p:separator />
                                <center>        
                                    <p:commandButton icon="ui-icon-disk"  value="Insertar" action="#{managedBeanEmpleado.insertar()}" update=":frmfieldset:grow2 :frmfieldset :frmNuevo:dataTable" />
                                </center>
                                <p:separator />
                            </p:fieldset>
                        </h:panelGrid>
                    </h:form>

                    <h:form id="frmAgencia">
                        <p:dialog modal="true" id="Agencia" header="Editar" widgetVar="AgenciaDialogo" resizable="false" 
                                  showEffect="explode" hideEffect="explode" height="420" style="width: 100%" >
                            <h:panelGrid id="displayAgencia" columns="2" cellpadding="4" style="width: 100%">
                                <p:fieldset legend="Nueva Agencia" toggleable="true" toggleSpeed="500">           
                                    <h:panelGrid columns="4" cellpadding="15">                       
                                        <h:outputLabel for="txtRuc" value="Ruc: *" /> 
                                        <p:inputText style="width: 150px"  required="true" requiredMessage="Ingrese RUC"  label="Ruc" id="txtRuc" value="#{managedBeanAgencia.objetoAgenciaCrear.agenRUC}"/>                        
                                        <h:outputLabel for="txtRazonSocial" value="Razon Social: *" /> 
                                        <p:inputText style="width: 150px"  required="true" requiredMessage="Ingrese Razon Social" label="RazonSocial" id="txtRazonSocial"  value="#{managedBeanAgencia.objetoAgenciaCrear.agenRazSoc}"/>
                                        <h:outputLabel value="Dueño: *" />
                                        <h:outputText style="width: 150px"  id="duenio2" value="#{managedBeanEmpresa.datosDuenio}"/>
                                        <h:outputLabel for="txtDireccion" value="Direccion: *" /> 
                                        <p:inputText style="width: 150px"  required="true" requiredMessage="Ingrese Direccion" label="Direccion" id="txtDireccion" value="#{managedBeanAgencia.objetoAgenciaCrear.agenDireccion}"/>
                                        <h:outputLabel for="txtTelefono" value="Telefono: *" /> 
                                        <p:inputText style="width: 150px"  label="Telefono" id="txtTelefono" value="#{managedBeanAgencia.objetoAgenciaCrear.agenTelefono}"/>
                                        <h:outputLabel for="txtCelular" value="Celular: *" /> 
                                        <p:inputText style="width: 150px"  label="Celular" id="txtCelular" value="#{managedBeanAgencia.objetoAgenciaCrear.agenCelular}"/>
                                        <h:outputLabel  value="Fecha de Creacion: *" /> 
                                        <p:calendar style="width: 150px" value="#{managedBeanAgencia.objetoAgenciaCrear.agenFechaCreacion}" pattern="dd/MM/yyyy" />
                                        <h:outputLabel for="txtNroEmp" value="Nro de Empleados: *" /> 
                                        <p:inputText style="width: 150px"  label="Nro de Empleados" id="txtNroEmp" value="#{managedBeanAgencia.objetoAgenciaCrear.agenNroEmpleados}"/>
                                        <h:outputLabel value="Ciudad: *" />
                                        <p:selectOneMenu filterMatchMode="contains" filter="true" value="#{managedBeanAgencia.objetoAgenciaCrear.ciudad}" effect="drop" style="width:150px" converter="CiudadConverter" >
                                            <f:selectItems  id="temsppp" value="#{managedBeanCiudad.objetoItems}"/>
                                        </p:selectOneMenu>
                                        <p:commandButton id="insert1" icon="ui-icon-disk" value="Insertar" update=":frmfieldset:zzz1 :frmfieldset:grow2 :frmAgencia :frmAgencia:txtRuc :frmAgencia:txtRazonSocial" action="#{managedBeanAgencia.insertar()}"  style="clear: both" alt="Ingresado" />
                                    </h:panelGrid>
                                </p:fieldset>
                            </h:panelGrid>
                        </p:dialog>
                    </h:form>       

                    <h:form id="frmCargo">
                        <p:dialog modal="true" id="Cargo" header="Editar" widgetVar="CargoDialogo" resizable="false" 
                                  showEffect="explode" hideEffect="explode" height="290" style="width: 100%" >
                            <h:panelGrid id="displayCargo" columns="2" cellpadding="4" style="width: 100%">
                                <p:fieldset legend="Nuevo Cargo" toggleable="true" toggleSpeed="500">           
                                    <h:panelGrid columns="2" cellpadding="10">                        
                                        <h:outputLabel for="txtNombre" value="Nombre: *" /> 
                                        <p:inputText style="width: 85%"  required="true" requiredMessage="Ingrese Nombre" label="Nombre" id="txtNombre" value="#{managedBeanCargo.objetoCargoCrear.carCargo}"/>                        
                                        <h:outputLabel for="txtDescripcion" value="Descripcion: *" /> 
                                        <p:inputTextarea  required="true" requiredMessage="Ingrese Descripcion"  label="Descripcion" id="txtDescripcion" rows="3" cols="45" value="#{managedBeanCargo.objetoCargoCrear.carDescripcion}"/>                        
                                        <p:commandButton id="insert3" icon="ui-icon-disk" value="Insertar" update=":frmfieldset:zzz3 :frmfieldset:grow2 :frmCargo :frmCargo:txtDescripcion :frmCargo:txtNombre" action="#{managedBeanCargo.insertar()}"  style="clear: both" alt="Ingresado" />
                                    </h:panelGrid>  
                                </p:fieldset>
                            </h:panelGrid>
                        </p:dialog>
                    </h:form>     
                    
                    <h:form id="frmTipoEmpleado">
                        <p:dialog modal="true" id="TipoEmpleado" header="Editar" widgetVar="TipoEmpleadoDialogo" resizable="false" 
                                  showEffect="explode" hideEffect="explode" height="290" style="width: 100%" >
                            <h:panelGrid id="displayTipoEmpleado" columns="2" cellpadding="4" style="width: 100%">
                                <p:fieldset legend="Nuevo Tipo de Empleado" toggleable="true" toggleSpeed="500">           
                                    <h:panelGrid columns="2" cellpadding="10">                        
                                        <h:outputLabel for="txtNombre" value="Nombre: *" /> 
                                        <p:inputText style="width: 85%"  required="true" requiredMessage="Ingrese Nombre" label="Nombre" id="txtNombre" value="#{managedBeanTipoEmpleado.objetoTipoEmpleadoCrear.tempTipo}"/>                        
                                        <h:outputLabel for="txtDescripcion" value="Descripcion: *" /> 
                                        <p:inputTextarea  required="true" requiredMessage="Ingrese Descripcion"  label="Descripcion" id="txtDescripcion" rows="3" cols="45" value="#{managedBeanTipoEmpleado.objetoTipoEmpleadoCrear.tempDescripcion}"/>                        
                                        <p:commandButton id="insert3" icon="ui-icon-disk" value="Insertar" update=":frmfieldset:zzz4 :frmfieldset:grow2 :frmTipoEmpleado :frmTipoEmpleado:txtDescripcion :frmTipoEmpleado:txtNombre" action="#{managedBeanTipoEmpleado.insertar()}"  style="clear: both" alt="Ingresado" />
                                    </h:panelGrid>  
                                </p:fieldset>
                            </h:panelGrid>
                        </p:dialog>
                    </h:form>

                    <br/>
                    <h:form id="frmNuevo">
                        <p:growl id="growl" showDetail="true"/>
                        <p:growl id="messages" />            
                        <h:panelGrid id="padre" columns="1" style="width: 100%">
                            <h:panelGrid id="hijo2" columns="1" style="width: 100%">
                                <p:dataTable id="dataTable" var="Empleado" value="#{managedBeanEmpleado.lista}" widgetVar="EmpleadoTable" emptyMessage="Datos no encontrados"
                                             selection="#{managedBeanEmpleado.objetoEmpleado}" selectionMode="single"
                                             rowKey="#{Empleado.idEmpleado}" paginator="true" rows="5"
                                             rowsPerPageTemplate="5,10,20,50">  
                                    <p:ajax event="rowSelect" listener="#{managedBeanEmpleado.onRowSelect}"
                                            update=":frmNuevo:display :frmNuevo:growl" oncomplete="EmpleadoDialogo.show()" />
                                    <p:ajax event="rowUnselect" listener="#{managedBeanEmpleado.onRowUnselect}" update=":frmNuevo:growl"/>
                                    <f:facet name="header">  
                                        <p:outputPanel>  
                                            <h:outputText value="Listado de Empleados" />    
                                        </p:outputPanel>  
                                    </f:facet>
                                    <p:column id="dni" filterMatchMode="contains" filterBy="#{Empleado.persona.perDNI}" style="text-align: center" > 
                                        <f:facet name="header">
                                            <h:outputText value="DNI" />
                                        </f:facet>
                                        <h:outputText value="#{Empleado.persona.perDNI}" />  
                                    </p:column> 
                                    <p:column id="nombre" filterMatchMode="contains" filterBy="#{Empleado.persona.perNombres}" style="text-align: center" > 
                                        <f:facet name="header">
                                            <h:outputText value="Nombre Completo" />
                                        </f:facet>
                                        <h:outputText value="#{Empleado.persona.perNombres}" />  
                                        <h:outputText value=" " />  
                                        <h:outputText value="#{Empleado.persona.perApellidos}" />  
                                    </p:column>  
                                    <p:column id="Cargo" filterMatchMode="contains" filterBy="#{Empleado.tipoempleado.tempTipo}" style="text-align: center" > 
                                        <f:facet name="header">
                                            <h:outputText value="Tipo" />
                                        </f:facet>
                                        <h:outputText value="#{Empleado.tipoempleado.tempTipo}" />  
                                    </p:column> 
                                    <p:column id="descripcion" filterMatchMode="contains" filterBy="#{Empleado.cargo.carCargo}" style="text-align: center" > 
                                        <f:facet name="header">
                                            <h:outputText value="Cargo" />
                                        </f:facet>
                                        <h:outputText value="#{Empleado.cargo.carCargo}" />  
                                    </p:column>  
                                </p:dataTable> 
                            </h:panelGrid>
                        </h:panelGrid>        
                        <p:dialog modal="true" id="dialog" header="Editar Empleado" widgetVar="EmpleadoDialogo" resizable="false" 
                                  showEffect="explode" hideEffect="explode" height="530" style="width: 100%" >
                            <h:panelGrid id="display" columns="2" cellpadding="4" style="width: 100%">
                                <p:fieldset legend="Datos de Empleado" toggleable="true" toggleSpeed="500">  
                                    <p:ajax event="toggle" listener="#{fieldsetBean.handleToggle}" update="growl" />    
                                    <h:panelGrid columns="6" cellpadding="10">  
                                        <h:outputText value="ID: " />  
                                        <p:inputText style="width: 85%" disabled="true" value="#{managedBeanEmpleado.objetoEmpleado.idEmpleado}"/> 
                                        <h:outputText value="DNI: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanEmpleado.objetoEmpleado.persona.perDNI}"/>  
                                        <h:outputText value="Nombre: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanEmpleado.objetoEmpleado.persona.perNombres}"/> 
                                        <h:outputText value="Apelidos: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanEmpleado.objetoEmpleado.persona.perApellidos}"/> 
                                        <h:outputText value="Direccion: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanEmpleado.objetoEmpleado.persona.perDireccion}"/> 
                                        <h:outputText value="Sexo: " />
                                        <p:selectOneMenu value="#{managedBeanEmpleado.objetoEmpleado.persona.perSexo}" style="width:150px">
                                            <f:selectItem itemLabel="Masculino" itemValue="M" />  
                                            <f:selectItem itemLabel="Femenino" itemValue="F" />  
                                            <f:selectItem itemLabel="Otros" itemValue="O" />  
                                        </p:selectOneMenu>
                                        <h:outputText value="Telefono: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanEmpleado.objetoEmpleado.persona.perTelf}"/> 
                                        <h:outputText value="Celular: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanEmpleado.objetoEmpleado.persona.perCel}"/> 
                                        <h:outputText value="Fecha Nacimiento: " /> 
                                        <p:calendar style="width: 150px" value="#{managedBeanEmpleado.objetoEmpleado.persona.perFechaNac}" pattern="dd/MM/yyyy" />
                                    </h:panelGrid>
                                    <p:separator />
                                    <center >        
                                        <h:outputText  value="Detalle Empleado" style="color:#0044cc; size: 35px;" /> 
                                    </center>
                                    <p:separator />
                                    <h:panelGrid columns="4" cellpadding="15">
                                        <h:outputText value="Cargo: " />
                                        <p:selectOneMenu filterMatchMode="contains" filter="true" value="#{managedBeanEmpleado.objetoEmpleado.cargo}" effect="drop" style="width:150px" converter="CargoConverter" >
                                            <f:selectItems  id="tem" value="#{managedBeanCargo.objetoItems}"/>
                                        </p:selectOneMenu>    
                                        <h:outputText value="Tipo Empleado: " />
                                        <p:selectOneMenu filterMatchMode="contains" filter="true" value="#{managedBeanEmpleado.objetoEmpleado.tipoempleado}" effect="drop" style="width: 150px" converter="TipoEmpleadoConverter" >
                                            <f:selectItems  id="tem2" value="#{managedBeanTipoEmpleado.objetoItems}"/>
                                        </p:selectOneMenu>
                                        <h:outputText value="Jefe: " />
                                        <p:selectOneMenu filterMatchMode="contains" filter="true" value="#{managedBeanEmpleado.objetoEmpleado.empleado}" effect="drop" style="width: 150px" converter="EmpleadoConverter" >
                                            <f:selectItems  id="tem3" value="#{managedBeanEmpleado.objetoItems}"/>
                                        </p:selectOneMenu>
                                         <h:outputText value="BREVETE: *" /> 
                                    <p:inputText style="width: 100px"   id="txtBrevete" value="#{managedBeanEmpleado.objetoEmpleado.empNumBrevete}"/>                        
                                   
                                        <h:outputText value="Fecha Ingreso: *" /> 
                                        <p:calendar value="#{managedBeanEmpleado.objetoEmpleado.empFechaIngreso}" pattern="dd/MM/yyyy" />
                                        <h:outputText value="Fecha Salida: *" /> 
                                        <p:calendar value="#{managedBeanEmpleado.objetoEmpleado.empFechaSalida}" pattern="dd/MM/yyyy" />
                                    </h:panelGrid>  
                                    <p:separator />
                                    <center>        
                                        <p:commandButton icon="ui-icon-arrowrefresh-1-w" value="Actualizar" action="#{managedBeanEmpleado.editar}" update=":frmNuevo" />                            
                                        <p:commandButton value="Eliminar" title="Eliminar" alt="Eliminar" icon="ui-icon-close"  action="#{managedBeanEmpleado.eliminar}" update=":frmNuevo" />
                                    </center>
                                </p:fieldset> 
                            </h:panelGrid>
                        </p:dialog>
                        <p:outputPanel id="panel1" autoUpdate="true" style="text-align: center">
                            <center>
                                <h:panelGrid columns="2" cellpadding="10">
                                    <p:fieldset legend="Exportar Todo: Seleccione el tipo de Formato" toggleSpeed="500"> 
                                        <center>
                                            <h:panelGrid columns="2" cellpadding="10">
                                                <h:commandLink>
                                                    <p:graphicImage style="width: 40px; height: 48px" value="/images/excel.png" />
                                                    <p:dataExporter type="xls" target="dataTable" fileName="lista" />
                                                </h:commandLink>
                                                <h:commandLink>
                                                    <p:graphicImage style="width: 50px; height: 48px" value="/images/pdf.jpg" />
                                                    <p:dataExporter type="pdf" target="dataTable" fileName="lista"/>
                                                </h:commandLink>
                                            </h:panelGrid>
                                        </center>
                                    </p:fieldset>
                                    <h:panelGrid columns="2" cellpadding="10" >                             
                                        <p:fieldset legend="Exportar por Paginado: Seleccione el tipo de Formato" toggleSpeed="500"> 
                                            <center>
                                                <h:panelGrid columns="2" cellpadding="10">
                                                    <h:commandLink>
                                                        <p:graphicImage style="width: 40px; height: 48px" value="/images/excel.png" />
                                                        <p:dataExporter type="xls" target="dataTable" fileName="lista" pageOnly="true"/>
                                                    </h:commandLink>
                                                    <h:commandLink>
                                                        <p:graphicImage style="width: 50px; height: 48px" value="/images/pdf.jpg" />
                                                        <p:dataExporter type="pdf" target="dataTable" fileName="lista" pageOnly="true"/>
                                                    </h:commandLink>
                                                </h:panelGrid>
                                            </center>
                                        </p:fieldset>
                                    </h:panelGrid>
                                </h:panelGrid>
                            </center>
                        </p:outputPanel>
                    </h:form>
                </p:panel>

            </ui:define>
        </ui:composition>
    </body>
</html>
